Skip to content

PivotGrid - KBN - Add ARIA attributes to area fields#34271

Closed
aleksei-semikozov wants to merge 1 commit into
DevExpress:mainfrom
aleksei-semikozov:pivotgrid-kbn-fields-aria-attrs
Closed

PivotGrid - KBN - Add ARIA attributes to area fields#34271
aleksei-semikozov wants to merge 1 commit into
DevExpress:mainfrom
aleksei-semikozov:pivotgrid-kbn-fields-aria-attrs

Conversation

@aleksei-semikozov

Copy link
Copy Markdown
Contributor

No description provided.

@aleksei-semikozov aleksei-semikozov self-assigned this Jul 10, 2026
@aleksei-semikozov
aleksei-semikozov marked this pull request as ready for review July 14, 2026 10:38
@aleksei-semikozov
aleksei-semikozov force-pushed the pivotgrid-kbn-fields-aria-attrs branch from 2c9c204 to 6d03d82 Compare July 14, 2026 10:38
@aleksei-semikozov
aleksei-semikozov requested a review from a team as a code owner July 14, 2026 10:38
Comment thread packages/devextreme/js/localization/messages/en.json Outdated
@aleksei-semikozov
aleksei-semikozov requested a review from a team as a code owner July 15, 2026 19:38
@aleksei-semikozov
aleksei-semikozov changed the base branch from 26_1 to main July 16, 2026 13:02
@aleksei-semikozov
aleksei-semikozov requested review from a team as code owners July 16, 2026 13:02
@aleksei-semikozov
aleksei-semikozov force-pushed the pivotgrid-kbn-fields-aria-attrs branch from e0d5ac7 to 3025411 Compare July 16, 2026 13:06
Copilot AI review requested due to automatic review settings July 16, 2026 13:06

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR improves PivotGrid (and PivotGrid Field Chooser) accessibility markup for the KBN experience by exposing field-area contents as a menubar with menu items and by adding localized ARIA labels for field items (including sort/header-filter state).

Changes:

  • Updated PivotGrid fields area markup to toggle between presentational tables (empty) and a labelled menubar (populated), and ensured intermediate table structures are presentational.
  • Updated PivotGrid Field Chooser area containers to only use role="menubar" when fields exist, and added role="menuitem" + composed aria-label for each field item.
  • Added a shared helper (getFieldItemA11yLabel) with Jest coverage, plus new localization message keys across many locales.

Reviewed changes

Copilot reviewed 43 out of 43 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
packages/devextreme/testing/tests/DevExpress.ui.widgets.pivotGrid/pivotGrid.markup.tests.js Updates QUnit expectations for fields-area ARIA roles/labels, including empty filter area behavior.
packages/devextreme/js/__internal/grids/pivot_grid/fields_area/m_fields_area.ts Changes PivotGrid fields-area table semantics and assigns menubar semantics when populated.
packages/devextreme/js/__internal/grids/pivot_grid/field_chooser/m_field_chooser.ts Adds conditional menubar semantics/labeling for non-empty field-chooser areas.
packages/devextreme/js/__internal/grids/pivot_grid/field_chooser/m_field_chooser_base.ts Exposes fields as menuitems and composes aria-label including sort/header-filter state.
packages/devextreme/js/__internal/grids/pivot_grid/field_chooser/a11y.ts Introduces helper to build localized, state-aware field item accessible labels.
packages/devextreme/js/__internal/grids/pivot_grid/field_chooser/a11y.test.ts Adds Jest coverage for the new ARIA label composition helper.
e2e/testcafe-devextreme/tests/common/pivotGrid/kbn/fields.ts Adds E2E assertions for menubar/menuitem semantics and composed field aria-labels.
packages/devextreme/js/localization/messages/ar.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/bg.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/ca.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/cs.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/da.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/de.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/el.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/en.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/es.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/fa.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/fi.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/fr.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/hi.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/hu.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/it.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/ja.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/ko.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/lt.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/lv.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/nb.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/nl.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/pl.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/pt.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/pt-BR.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/pt-PT.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/ro.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/ru.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/sl.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/sv.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/tr.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/uk.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/vi.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/zh.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/zh-CN.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/zh-Hans.json Adds new PivotGrid ARIA label message keys.
packages/devextreme/js/localization/messages/zh-tw.json Adds new PivotGrid ARIA label message keys.

Comment on lines +183 to +186
row.attr('role', 'presentation');
tableElement
.attr('role', 'menubar')
.attr('aria-label', this._getAreaLabel());
Comment on lines +8 to +10
hasHeaderFilter: 'dxPivotGrid-ariaFieldHeaderFilterLabel',
sortingAsc: 'dxPivotGrid-ariaFieldISortAscLabel',
sortingDesc: 'dxPivotGrid-ariaFieldSortDescLabel',
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants